Unless otherwise indicated herein, the materials described in this section are not prior art to the claims in this application and are not admitted to be prior art by inclusion in this section.
Modern computer systems can provide support for memory management for executing applications. For example, the computer system can include a run-time system to support execution of software written in a high-level programming language. In some cases, the run-time system includes a “virtual machine” that executes low-level software that corresponds to instructions written in the high-level programming language.
For example, the Java™ computer language is an interpretive language that is executed using a software idealization of a processor called a Java™ Virtual Machine (JVM). The JVM has a built in memory manager for dynamically allocating and freeing up blocks of memory used by JVM application processes. When memory gets scarce, the JVM can call a “garbage collector” tool to locate and free up unused memory. It is not uncommon that garbage collection (GC) can take a relatively-long period of time (e.g., at least several seconds). The JVM typically suspends application processing during garbage collection.
Many computer-based services are provided using a client-server model of computation. When a client wants a service, the client can send an appropriate service request to an appropriate server. The server can process the service request to determine a response to the service request, and send the response to the requesting client. An example use of the client-server model is the World Wide Web, where web pages are delivered by web servers based on service requests from clients operating web browsers.